A data processing environment comprises a variety of hardware, software, and firmware networking components. A physical network, also called a data plane or an underlay, is a network of physical components where actual networking operations are performed and computational workloads are executed.
Techniques are available presently to construct a logical network, also known as a software defined network (SDN) overlay (hereinafter interchangeably, “SDN” or “overlay”), from such networking components. Essentially, networking components are abstracted into corresponding logical or virtual representations, and the abstractions are used to define the SDN. In other words, an SDN is a logical network formed and operated using logical representations of the underlying physical components.
Physical networks usually exist within the demarcated boundary of the data processing environment whose physical components are utilized in the physical network. Unlike a physical network, an SDN can be designed to span across one or more data processing environments. For example, while a physical network may be contained within a datacenter, an SDN may span across one or more datacenters.
As an example, a logical representation of a hypervisor can participate in an SDN, such that a function attributed to the logical representation of the hypervisor in the SDN is actually performed by the underlying hypervisor component in the underlay. Similarly, a logical representation of a switch or a networking gateway can participate in an SDN, such that a function attributed to the logical representation of the switch or the networking gateway in the SDN is actually performed by the underlying switch or the networking gateway component, respectively, in the underlay.
In an SDN, because the actual physical networking components that perform the networking functions are abstracted into logical entities representing the networking functionality offered by those components and not the actual implementations of those functionalities, something is needed to direct those networking functionality into a functioning logical network. An SDN controller is a component that manages and operates the logical networking components within an SDN.
Henceforth in this disclosure, any reference to a component within the context of an SDN is a reference to a logical representation of the component, which participates in the SDN, unless expressly distinguished where the reference is made. For example, a reference to a hypervisor in communication with an SDN controller is a reference to a logical representation of the hypervisor that operates in the SDN managed by the SDN controller and not to the hypervisor component of a machine that actually performs a task in the physical network.
Cloud computing is one of the emerging technologies that is enabling flexible and efficient computing. Cloud computing offers an on-demand model for computing that reduces, or in some cases, completely avoids the hardware and software maintenance costs for an end user of the computing services.
Cloud computing also generally has a lower total cost of ownership as compared to captive computing capabilities, such as dedicated/owned data processing systems. The flexibility of using selected computing resources when they are needed, as a service, is a key advantage of cloud computing that endears the cloud model to all types of users, including business enterprises, high power computing groups, and individual users.
One of the models for offering cloud computing to a user is Infrastructure as a Service (IaaS). The IaaS model of cloud computing provides the user with a data processing environment according to the user's request. In other words, the IaaS model provides to the user “machine time” or network time on a data processing system or networking component of the user's desired configuration. Typically, the data processing environment in the IaaS model takes the form of virtual machines (VMs) created according to a user-provided specification and allocated to the user for the duration of the user's workload. A networking component, such as a switch in the IaaS model takes the form of virtual switches which are configured according to a user's preferred networking settings and allocated to the user for the duration of the user's virtual network remains in existence.